As technology enables people to listen to music using MP3 players, carry digital pictures on portable hard drives, and save large word processing files on USB (Universal Serial Bus) pen drives, consumers want these portable devices to transfer the data quickly and reliably. Some current storage devices that use memory have relatively long read and write times for data stored in the memory. For example, a storage device with NAND Flash memory may have to read and write a large portion of the flash memory to make a small modification to the data. More specifically, the flash memory may be composed of blocks that contain pages which can be individually read, but may not be individually written. A device may have to access the entire block of data, modify a small portion of data in one of the pages, and then write the entire block back to the flash memory. This may result in longer reading and writing times than if the device just read and wrote the data to be modified. Additionally, the repeated writing of blocks to flash memory may cause the memory hardware at that block address to fail because of wear.
Other current storage devices are designed for use with computers that implement different file system types. These devices may be designed with a static caching method that is only optimized for one file system type, or include a less optimal caching policy designed to accommodate multiple file types. For some users, however, the static caching method may not be optimized for the users' file system type.